home *** CD-ROM | disk | FTP | other *** search
/ ftp.mactech.com 2010 / ftp.mactech.com.tar / ftp.mactech.com / thinkref / archive / THINKPascalUH2.1.sea / THINKPas Univ Hdr 2.1 / Interfaces / RTLib.p < prev    next >
Text File  |  1995-09-12  |  2KB  |  118 lines

  1. { Converted with MPW2TPas Tuesday, September 12, 1995 9:24:29 PM }
  2. {
  3.     File:        RTLib.p
  4.  
  5.     Copyright:    © 1983-1993 by Apple Computer, Inc.
  6.                 All rights reserved.
  7.  
  8.     Version:    System 7.1 for ETO #11
  9.     Created:    Tuesday, March 30, 1993 18:00
  10.  
  11. }
  12.  
  13.  UNIT RTLib;
  14.  INTERFACE
  15.  
  16.  
  17. {$IFC UNDEFINED UsingRTLib}
  18. {$SETC UsingRTLib := 1}
  19.  
  20.   USES
  21.    ConditionalMacros, Types;
  22. CONST
  23.     {
  24.             Error Codes
  25.     }
  26.     eRTNoErr                = 0;
  27.     eRTBadVersion        = 2;
  28.     eRTInvalidOp        = 4;
  29.     eRTInvalidJTPtr    = 6;
  30.  
  31.     {
  32.             Action Codes
  33.     }
  34.     kRTSysErr    = 0;
  35.     kRTRetry        = 1;
  36.     kRTContinue    = 2;
  37.  
  38.     {
  39.             Runtime Operations
  40.     }
  41.     kRTGetVersion            = 10;
  42.     kRTGetVersionA5        = 11;
  43.     kRTGetJTAddress        = 12;
  44.     kRTGetJTAddressA5        = 13;
  45.     kRTSetPreLoad            = 14;
  46.     kRTSetPreLoadA5        = 15;
  47.     kRTSetSegLoadErr        = 16;
  48.     kRTSetSegLoadErrA5    = 17;
  49.     kRTSetPostLoad            = 18;
  50.     kRTSetPostLoadA5        = 19;
  51.     kRTSetPreUnload        = 20;
  52.     kRTSetPreUnloadA5        = 21;
  53.     kRTPreLaunch            = 22;
  54.     kRTPostLaunch            = 23;
  55.  
  56.     {
  57.             Version Definitions
  58.     }
  59.     kVERSION32BIT            = $FFFF;
  60.     kVERSION16BIT            = $0000;
  61.     
  62.  
  63. TYPE
  64.     {
  65.             RTState Definition
  66.     }
  67.     RTState = RECORD 
  68.         fVersion:    INTEGER;                        { run-time version }
  69.         fSP:            Ptr;                                { SP: &-of user return address }
  70.         fJTAddr:        Ptr;                                { PC: &-of called jump table entry }
  71.         fRegisters: Array[0..14] of LONGINT;    { registers D0-D7 and A0-A6 when }
  72.                                                             {        _LoadSeg was called }
  73.         fSegNo:        INTEGER;                            {    segment number }
  74.         fSegType:    ResType;                            {    segment type (normally 'CODE') }
  75.         fSegSize:    LONGINT;                            {    segment size }
  76.         fSegInCore:    BOOLEAN;                            {    true if segment is in memory }
  77.         fReserved1:    BOOLEAN;                            { (reserved for future use) }
  78.         fOSErr:        OSErr;                            {    error number }
  79.         fReserved2:    LONGINT;                            { (reserved for future use) }
  80.     END;
  81.     
  82.     RTStatePtr = ^RTState;    
  83.     
  84.     {
  85.             Runtime Parameter Block
  86.     }
  87.     
  88.     RTParam = (RTGetVersionParam, RTGetJTAddrParam, RTSetSegLoadParam);
  89.     
  90.     RTPB = RECORD 
  91.         fOperation:        INTEGER;                        { operation }
  92.         fA5:                Ptr;                            { A5-world }
  93.         CASE RTParam OF
  94.             RTGetVersionParam:
  95.                 (fVersion:    INTEGER);                { run-time version (returned) }
  96.  
  97.             RTGetJTAddrParam:
  98.                 (fJTAddr:    Ptr;                        { ptr to jt entry }
  99.                 fCodeAddr:    Ptr);                        { code address w/i jt entry (returned) }
  100.                 
  101.             RTSetSegLoadParam:
  102.                 (fUserHdlr:        Ptr;                    { ptr to user handler }
  103.                 fOldUserHdlr:    Ptr);                    { ptr to old user handler (returned) }
  104.         END;
  105.     
  106.     RTPBPtr = ^RTPB;
  107.  
  108.  
  109. FUNCTION Runtime (runtime_parms: RTPBPtr): OSErr;
  110.  
  111.  
  112. {$ENDC}    { UsingRTLib }
  113.  
  114.     IMPLEMENTATION
  115.     END.
  116.  
  117.  
  118.